# -*- coding: utf-8 -*-
"""
Created on Tue Jun  5 21:16:41 2018

@author: Administrator
"""
#%%
import os
import glob
from ..origin import Shell_script

#%%
class Bone(Shell_script):
    #作用原理：这是其他计算类的父类
    #参数说明：目前只能接受nii文件。
    #参数说明：
    #返回值说明：
    #举例：
    #调用：
    #被调用：
    #bug：
    dot = '.'
    star_nii_star = '*nii*'
    tag_str = r'' #每一个子类会根据子类的名字，赋不同的值
    def __init__(self,input_list):
        print('input_list:',input_list)
        if len(input_list) != 2 :
            raise Exception("the number of elements of input_list is not equal to 3")
        self.initialize_input_list(input_list)
        self.concat_inputs()
        for self.input_filepath in self.input_filepaths:
          input_filepath_nonsuffix,suffix = os.path.splitext(self.input_filepath)
          name = os.path.split(input_filepath_nonsuffix)[1]
          self.output_filepath = self.output_dirpath + os.sep + name + self.tag_str + suffix
          self.concat_script()
          self.excute_shell_script()
        
    def initialize_input_list(self,input_list):
        
        #test if the input_list has four parameters
        ##########################################################################重新整理传入参数
        self.input_dirpath = input_list[0]
        self.output_dirpath = input_list[1]
        
    def concat_inputs(self):
      
      #glean the input_filepaths
      self.input_filepaths = glob.glob(self.input_dirpath + os.sep + self.star_nii_star)
      
      #construct self.output_dirpath
      input_dirname = os.path.split(self.input_dirpath)[1]
      self.output_dirpath = self.output_dirpath + os.sep + input_dirname + self.tag_str
      if not os.path.exists(self.output_dirpath):
        os.makedirs(self.output_dirpath)


#%%

class Tstat_mean(Bone):
    #作用原理：
    #参数说明：
    #参数说明：
    #返回值说明：
    #举例：
    #调用：
    #被调用：
    #bug：
    tag_str = r'_Tstat-mean'
    def concat_script(self):
        #特有的文件路径
        
        #cmd_1的内容：3dTcat -prefix   
        self.cmd_1 =  r'3dTstat -prefix ' + self.output_filepath + self.space + self.input_filepath
        
        self.shell_script = self.cmd_1